iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 20
0
Software Development

30天的python學習 系列 第 20

python30天-DAY20-pandas(6)

  • 分享至 

  • xImage
  •  

今天來練習數據的計算,首先來示範一下計算數據時最容易遇到的問題。

我們來計算一下年齡的平均值,用年齡的總和去除於數量

import pandas as pd
csv = "titanic.csv"
data = pd.read_csv(csv)
age_mean = sum(data.Age)/len(data.Age) #計算平均值(總和/數量) 
age_mean

nan

但是結果竟然是 nan !
我們把 data 裡的 Age 指標印出來看看
https://ithelp.ithome.com.tw/upload/images/20200918/201296018pQQ9HsZA8.png
可以看到其中第 888 格的值是 NaN,而且這只是其中一個而已,沒印出來的中間那段可能還有更多都是這樣的,這也是為什麼算不出來的原因了,你在計算過程中加入 NaN 出來的結果當然也只能是 NaN 了。

因此在計算東西時你會需要把 NaN 的值過濾掉。
我們可以利用 pandas 裡的函數 isnull() 來進行處理, isnull() 會把是空值的數值設為 True ,有值的設為 False,如下面示範。

import pandas as pd
csv = "titanic.csv"
data = pd.read_csv(csv)
age_null=pd.isnull(data.Age)
age_null

https://ithelp.ithome.com.tw/upload/images/20200918/20129601JHCXRoBUWF.png

我們得到了這個結果後,就可以拿來處理很多東西。

import pandas as pd
csv = "titanic.csv"
data = pd.read_csv(csv)
age_null=pd.isnull(data.Age)
age_null
data.Age[age_null] #加上這段(把得出來的一堆True和False帶入data)

https://ithelp.ithome.com.tw/upload/images/20200918/201296012ASB98RwaJ.png
這樣我們就把結果是 NaN 的數據全都拿出來了,可以看到他的 Length177 ,這代表在 data 裡一共有 177 個數據的Age欄位為 NaN

明天我們在繼續將得出來的結果進行更多處理。


上一篇
python30天-DAY19-pandas(5)
下一篇
python30天-DAY21-pandas(7)
系列文
30天的python學習 30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言